package gsw.tool.common;

import android.content.Context;
import android.content.pm.ApplicationInfo;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * 常用工具类
 */
public class Tool {

    /**
     * 判断字符串是否为空
     *
     * @param s 要判断的字符串
     * @return true:为空;false:不为空.
     */
    public static boolean isEmpty(String s) {
        return s == null || s.trim().equals("");
    }


    /**
     * 判断数组是否为空
     *
     * @param arr 数组
     * @return true：为空;false：不为空。
     */
    public static boolean isEmpty(Object[] arr) {
        return arr == null || arr.length == 0;
    }

    /**
     * 判断int数组是否为空
     *
     * @param arr
     * @return
     */
    public static boolean isEmpty(int[] arr) {
        return arr == null || arr.length == 0;
    }

    /**
     * 判断集合是否为空
     *
     * @param list
     * @param <T>
     * @return
     */
    public static <T> boolean isEmpty(List<T> list) {
        return list == null || list.size() == 0;
    }

    /**
     * 获取当前时间
     *
     * @return 格式化的当前时间
     */
    public static String getNowDate() {
        String pattern = "yyyy年MM月dd日 HH:mm:ss:mmm";
        return getNowDate(pattern);
    }

    /**
     * 获取当前时间
     *
     * @param pattern 格式
     * @return 格式化的当前时间
     */
    public static String getNowDate(String pattern) {
        Date d = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
        String s = simpleDateFormat.format(d);
        return s;
    }

    /**
     * 向上取整
     *
     * @param data 需要取整的数
     * @param i    取整的位数
     * @return 取整后的结果
     */
    public static double getFloatUP(double data, int i) {
        BigDecimal b = new BigDecimal(data);
        double f = b.setScale(i, RoundingMode.HALF_UP).doubleValue();
        return f;
    }

    /**
     * 判断是否debug模式
     *
     * @param context
     * @return
     */
    public static boolean isDebug(Context context) {
        try {
            ApplicationInfo info = context.getApplicationInfo();
            return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
        } catch (Exception e) {

        }
        return false;
    }

}
